From 7ce37c94596029358a67d732a82e4313f7b89135 Mon Sep 17 00:00:00 2001
From: Jens Georg <mail@jensge.org>
Date: Sun, 30 May 2021 13:13:00 +0200
Subject: [PATCH] doc: Check for stylesheet existence on doc build

Checking for xsltproc is not enough

Fixes #17

[Retrieved from:
https://gitlab.gnome.org/GNOME/gupnp/-/commit/7ce37c94596029358a67d732a82e4313f7b89135]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 doc/meson.build | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/doc/meson.build b/doc/meson.build
index 26c32c9..eb69d07 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -30,6 +30,8 @@ endif
 
 xsltproc = find_program('xsltproc', required: false)
 if xsltproc.found()
+    stylesheet = 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl'
+
     xlstproc_flags = [
         '--nonet',
         '--xinclude',
@@ -45,17 +47,31 @@ if xsltproc.found()
         xsltproc,
         xlstproc_flags,
         '-o', '@OUTPUT@',
-        'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
+        stylesheet,
         '@INPUT@'
     ]
 
-    custom_target(
-        'man 1 pages',
-        input: 'gupnp-binding-tool.xml',
-        output: 'gupnp-binding-tool-1.2.1',
-        command: xsltproc_args,
-        depend_files : version_xml,
-        install: true,
-        install_dir: join_paths(get_option('mandir'), 'man1')
+    stylesheet_check = run_command(
+        [
+            xsltproc,
+            xlstproc_flags,
+            '--noout',
+            stylesheet,
+            'gupnp-binding-tool.xml'
+        ]
     )
+    if (stylesheet_check.returncode() == 0)
+        message('Stylesheet ' + stylesheet + ' available')
+        custom_target(
+            'man 1 pages',
+            input: 'gupnp-binding-tool.xml',
+            output: 'gupnp-binding-tool-1.2.1',
+            command: xsltproc_args,
+            depend_files : version_xml,
+            install: true,
+            install_dir: join_paths(get_option('mandir'), 'man1')
+        )
+    else
+        message('Stylesheet ' + stylesheet + ' not found, not building man page')
+    endif
 endif
-- 
GitLab

